/*select {
	case <-ch1:
	// 如果从 ch1 信道成功接收数据，则执行该分支代码
	case ch2 <- 1:
	// 如果成功向 ch2 信道成功发送数据，则执行该分支代码
	default:
	// 如果上面都没有成功，则进入 default 分支处理流程
}*/

package main

import "fmt"

func main() {
	size := 10
	ch1 := make(chan int, size)
	for i := 0; i < size; i++ {
		ch1 <- 1
	}

	ch2 := make(chan int, size+1)
	for i := 0; i < size; i++ {
		ch2 <- 2
	}

	// select中的case语句是随机执行的
	select {
	case a := <-ch1:
		fmt.Println("a", a)
	case b := <-ch2:
		fmt.Println("b", b)
	case ch2 <- 200:
		fmt.Println("插值成功")
	default: // 如果 ch1 和 ch2 信道都阻塞的话，就会立即进入default分支
		fmt.Println("default")
	}
}
